package com.shell.customer.accreditation.service;

import com.shell.bee.entity.mvc.RetMsg;
import com.shell.customer.accreditation.vo.AccreditationVo;
import com.shell.customer.accreditation.vo.CusOptVo;
import com.shell.customer.accreditation.vo.UserVo;
import com.shell.customer.po.CusAcct;
import com.shell.customer.po.CusOpt;
import com.shell.sms.SMSResponse;
import com.timevale.esign.sdk.tech.bean.result.Result;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

public abstract interface AccreditationService
{
  public abstract AccreditationVo getCustomerInfo(String paramString);
  
  public abstract Map<String, Object> getCusTypeByInviteCode(String paramString);
  
  public abstract void saveAccreditationData(AccreditationVo paramAccreditationVo);
  
  public abstract List<UserVo> getOperators(@Param("contactorId") String paramString);
  
  public abstract RetMsg firstTrialPass(CusOptVo paramCusOptVo, BigDecimal paramBigDecimal);
  
  public abstract RetMsg lastTrialPass(CusOptVo paramCusOptVo);
  
  public abstract void lastTrialReject(CusOpt paramCusOpt);
  
  public abstract void firstTrialReject(CusOpt paramCusOpt);
  
  public abstract void broadcastAfterAccredit(String paramString);
  
  public abstract Map<String, String> genAccreditationFiles(AccreditationVo paramAccreditationVo);
  
  public abstract String genCusAuthFile(AccreditationVo paramAccreditationVo);
  
  public abstract Result esignAccreditionFile(AccreditationVo paramAccreditationVo);
  
  public abstract SMSResponse cfcaAccreditionFile(AccreditationVo paramAccreditationVo);
  
  public abstract RetMsg esignPayAmountAuth(BigDecimal paramBigDecimal);
  
  public abstract RetMsg payAmountVerification(BigDecimal paramBigDecimal);
  
  public abstract RetMsg saveCusAcct(CusAcct paramCusAcct);
  
  public abstract CusAcct getCusAcct(String paramString);
  
  public abstract String esignAuthEntInfo(AccreditationVo paramAccreditationVo)
    throws Exception;
  
  public abstract String cfcaAuthEntInfo(AccreditationVo paramAccreditationVo)
    throws Exception;
  
  public abstract String cfcaAuthAdministrator(AccreditationVo paramAccreditationVo, boolean paramBoolean)
    throws Exception;
  
  public abstract String esignAuthAdministrator(AccreditationVo paramAccreditationVo)
    throws Exception;
  
  public abstract String esignAuthOperators(AccreditationVo paramAccreditationVo)
    throws Exception;
}
